<?php
/*
* Kommentare
*
*/

// wenn mit dem Link die Kommentar ID übergeben wird werden an der Stelle wo die Methode aufgerufen wird
// Alle Kommentare zu der übergebenen Newsid angezeigt
// Link Bsp.: kommentare.php?k=1 In diesem Fall Alle Kommentare zu dem Eintrag mit der ID 1
// Wenn die Methode mit  true aufgerugen wird, wird das Formular zum Kommentare eingeben angezeigt
function kommentareAnzeigen ($komSchreiben) {
	global $k;
	kommentarSpeichern();
	if (isset($k)) {
		kommentareAuslesen();
		if ($komSchreiben) kommentareSchreiben();
	}
}

// Gibt alle Komentare zu einer im Link stehenden NewsId aus (siehe beschreibung "kommentareAnzeigen()" )
function kommentareAuslesen() {
	global $newsKom;
	global $k;
	$komanz=0;
	if (isset($k)) {	
		if (allowkom($k)){
			if (count($newsKom) != 0) {
				$kommentare = "";
				foreach ($newsKom as $line) {
					list ($newsid, $komid, $komname, $komseite, $kommail, $komtext) = explode("\t", $line);
					if ($k != $newsid) continue;
					$komanz++;
					$komname = $komname;
					$komseite = $komseite;
					$komName  = (strlen($kommail) > 1)?"<a class=\"gb\" href=\"mailto:$kommail\">".stripslashes($komname)."</a>":stripslashes($komname);
					$komseite = (preg_match("/http:\/\/.+/i", str_replace('www.','http://www.',$komseite)))?"<a href=\"".$komseite."\" target=\"_blank\"><img src='".newsOrdner."bilder/home.gif' border='0' alt='seite'/></a>":"";			
					$eintrag = ersetzeBBCodes(smiliesUmwandeln($komtext));
					$kommentar = ($komanz & 1)?"kommentar_u":"kommentar_g";						
					$kommentare[$komanz-1] = array('comment' => $kommentar,'comName' => $komName,'comPage' => $komseite,'text'    => $eintrag);
				}
			}
			if ($komanz <= 0) echo "<p><i>".FONT_COMMENT_NOCOMMENT."</i></p>";
			else  {
				$tmp = new Template(templateUrl.'front_kommentare.tpl');
				$tmp->setContent('COMMENTS',$kommentare);
				echo $tmp->vorlage;
			}
			
			
			
		} else die(FONT_COMMENT_NOTALLOWED);
	}
} 

// Zeigt das Kommentarformular an 
function kommentareSchreiben() {
	global  $config, $meldung, $k;
	$text = "";
	$name = "";
	$seite = "";
	$mail = "";
	include $config;
	if (isset($k)) {
		if (allowkom($k) && !isset($_SESSION['namea'])) {
			$meldung = kommentarSpeichernErlaubt();
			if (!empty($meldung)) felderFuellen(&$text, &$name, &$seite, &$mail);
				pluginKom($k, $mail, $seite, $text);
				
				// SpamProtection
				if (int2bool($spamProtection)) {
					ob_start();	
					$tmp = new Template(templateUrl.'front_kommentar_spamProtection_captcha.tpl');
					echo $tmp->vorlage;
					$spamProtection = ob_get_contents();
					ob_end_clean();
				} else $spamProtection = "";
				
				$tmp = new Template(templateUrl.'front_kommentar_schreiben.tpl');
				$tmp->setContent(array('meldung'        => $meldung,
									   'name'           => $name,
									   'page'           => $seite,
									   'mail'           => $mail,
									   'newsDir'        => newsOrdner,
									   'newsId'         => $k,
									   'text'           => $text,
									   'smilieList(T)'  => smilielist(true,"kommentare"),
									   'spamProtection' => $spamProtection));
				echo $tmp->vorlage;
		}
	}
}

// Alle Meldungen bei Kommentaren
function kommentarSpeichernErlaubt() {
	global $config;
	include $config;
	$ds = "<div id=\"hinweis\">";
	$de = "</div>";
	if (isset($_POST['capsenden'])) return "<span id=\"hinweis\"></span>";
	if (isset($_POST['komsenden'])) { 
		if (int2bool($spamProtection)) {
			if (isset($_SESSION['captcha_spam']) && strtolower($_POST["sicherheitscode"]) != $_SESSION['captcha_spam']) return $ds.FONT_NOTICE_CAPTCHA.$de;
		}
		if (empty($_POST['text']) || strlen($_POST['text']) > 500) return $ds.FONT_NOTICE_GT500.$de;
		if (empty($_POST['komname']))        return $ds.FONT_NOTICE_NONAME.$de;
		if (strlen($_POST['komname']) > 30)  return $ds.FONT_NOTICE_NAMEGT30.$de;
		if (strlen($_POST['komseite']) > 40) return $ds.FONT_NOTICE_URLGT40.$de;
		if (strlen($_POST['kommail']) > 40)  return $ds.FONT_NOTICE_MAILGT40.$de;
	}
}

function kommentarSpeichern() {
	global $k;
	global $newsKom;
	global $meldung;
	global $config;
	if (isset($_POST['komsenden'])) {
		$meldung = kommentarSpeichernErlaubt();
		$komid   = 0;
		$all     = "";
		// Speichern bei keiner Fehlermeldung
		if (empty($meldung)) {
			unset($_SESSION['captcha_spam']);
			// neue Kommentar ID vergeben
			if (isset($newsKom[0])) {
				$letzterEintrag = $newsKom[0];
				list ($newsid, $komid) = explode("\t", $newsKom[0]);
				$komid++;
			} else $komid = 1;
			$id = $k;	
			foreach ($newsKom as $zeile) $all .= $zeile;
			$all = $id."\t".$komid."\t".clearInput($_POST['komname'])."\t"
					.clearInput($_POST['komseite'])."\t"
					.clearInput($_POST['kommail'])."\t"
					.clearInput($_POST['text'])."\t"
					.date("D, d M y H:i:s O")."\t\n"
					.$all;

			dateiSpeichern(dataUrl."newsKom.dat",$all,"w");
			
			// E-Mail Benachrichtigung an alle Verschicken
			include $config;
			if (int2bool($emailBenachrichtigung)) sendMailToAll(FONT_EMAIL_NEWCOMMENT_SUMMARY,$_POST['komname'].FONT_EMAIL_NEWCOMMENT_TEXT."\n\n---\n".$_POST['text']);
			
			$newsKom = datenbankfileNeuLesen("newsKom");
		}
	}
}

/**
* Kommentare Helfer
*
*/

// füllt die Felder im Template mit den Post Werten
function felderFuellen(& $text, & $name, & $seite, & $mail) {
	$text  = htmlspecialchars ($_POST['text'],ENT_QUOTES,"UTF-8");
	$name  = htmlspecialchars ($_POST['komname'],ENT_QUOTES,"UTF-8");
	$seite = htmlspecialchars ($_POST['komseite'],ENT_QUOTES,"UTF-8");
	$mail  = htmlspecialchars ($_POST['kommail'],ENT_QUOTES,"UTF-8");
}

?>